package com.algorithm;

//给你 n 个非负整数 a1，a2，...，an，每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线，垂直线 i 的两个端点分别为 (i,
//ai) 和 (i, 0)。找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。
// 说明：你不能倾斜容器，且 n 的值至少为 2。
//
//如：输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下，容器能够容纳水（表示为蓝色部分）的最大值为 49。
// 示例：
//
// 输入：[1,8,6,2,5,4,8,3,7]
//输出：49
// Related Topics 数组 双指针

public class LeetCode_11_0100 {

    public int maxArea(int[] height) {
        int posEndLeft = 0;
        int posEndRight = height.length - 1;
        int areaWidth = 0;
        int areaHeight = 0;
        int areaMax = 0;

        while (posEndLeft < posEndRight) {
            areaWidth = posEndRight - posEndLeft;
            areaHeight = height[posEndLeft] > height[posEndRight] ? height[posEndRight--] : height[posEndLeft++];
            if (areaMax < areaWidth * areaHeight) areaMax = areaWidth * areaHeight;
        }
        return areaMax;
    }

}
